package com.zhentao.controller;

import com.zhentao.model.common.dtos.ResponseResult;
import com.zhentao.model.user.dto.UserPageDto;
import com.zhentao.model.user.pojo.ApUser;
import com.zhentao.service.ApUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

@RestController
@RequestMapping("/api/v1/app/user")
@Api(tags = "ApUserController-用户个人信息管理")
public class ApUserController {
    @Resource
    ApUserService apUserService;

    /**
     * 用户个人账户信息列表
     * @param dto
     * @return
     */
    @ApiOperation("用户个人账户信息列表")
    @PostMapping("/userlist")
    public ResponseResult userlist(@RequestBody UserPageDto dto){
        return apUserService.getlist(dto);
    }

    /**
     * 已实名的可用用户个人账户信息
     * @return
     */
    @ApiOperation("已实名的可用用户个人账户信息")
    @PostMapping("/userUpOne")
    public ResponseResult selectMine(){
        return apUserService.selectMine();
    }

    /**
     * 已实名的可用用户个人账户信息
     * @return
     */
    @ApiOperation("未实名的可用用户个人账户信息")
    @PostMapping("/userNotUpOne")
    public ResponseResult userNotUpOne(){
        return apUserService.userNotUpOne();
    }

    /**
     * 用户个人账户信息上传（添加）
     * @param apUser
     * @return
     */
    @ApiOperation("用户个人账户信息上传（添加）")
    @PostMapping("/addUser")
    public ResponseResult addUser(@RequestBody ApUser apUser){
        return apUserService.addUser(apUser);
    }

    /**
     * 用户相详细信息更新（修改）
     * @param apUser
     * @return
     */
    @ApiOperation("用户个人账户信息更新（修改）")
    @PostMapping("/updateUser")
    public ResponseResult updateUser(@RequestBody ApUser apUser){
        return apUserService.updateUser(apUser);
    }

    /**
     * 后台用户账号状态调整
     * @param id
     * @return
     */
    @ApiOperation(("后台用户账号状态调整"))
    @PostMapping("/ifUse")
    public  ResponseResult ifUse(@RequestParam("id") int id ){
        return apUserService.ifUse(id);
    }

    @ApiOperation("根据userid查询用户账号信息")
    @GetMapping("/getUserByUserId/{userId}")
    public ResponseResult getByUserId(@PathVariable("userId") String userId){
        return apUserService.getByUserId(userId);
    }

    @ApiOperation("查询个人名下的用户")
    @PostMapping("/selectListByUser")
    public ResponseResult selectListByUser(@RequestParam("id") Integer id){
        return apUserService.selectListByUser(id);
    }

}
